﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using VsxFactory.Modeling.Repository;

namespace VsxFactory.Modeling.Strategies
{
    public abstract class SettingsBase : IStrategySettings
    {
        public string GetPackageFolder(string kind)
        {
            Guard.ArgumentNotNullOrEmptyString(kind, "kind");
            switch (kind)
            {
                case PackageKind.Model:
                    return Path.Combine(Folder, @"Templates\Models");
                case PackageKind.Strategy:
                    return Path.Combine(Folder, @"Strategies");
                case PackageKind.T4Template:
                    return Path.Combine(Folder, @"Templates\T4");
                case PackageKind.ProjectTemplate:
                    return Path.Combine(Folder, @"Templates\Projects");
            }
            return Path.Combine(Folder, kind);
        }
        public abstract PackageSource DefaultRepositorySource { get; }
        public abstract string Folder { get; }
    }
}
